perm filename ELFTST.SAI[S,HE] blob
sn#508591 filedate 1980-05-08 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 BEGIN "ELFTST"
C00004 ENDMK
C⊗;
BEGIN "ELFTST"
COMMENT This was specifically designed to do a lot of extra output to the ELF,
in order to find timing races, etc.;
DEFINE CRLF="'15&'12";
REQUIRE "ELFHDR.SAI[GRA,AAM]" SOURCE_FILE;
INTEGER I,TEMP,MEMLOC,LN;
BOOLEAN NOERROR;
PRINT("ELF test.",CRLF,"Starting word address: ");
MEMLOC ← CVO(INCHWL);
PRINT("Number of words to test: ");
LN ← CVO(INCHWL) - 1;
PRINT("Type a carriage return to start the testing.");
INCHWL;
ELFINI;
BEGIN "ARRAY ALLOCATION BLOCK"
INTEGER ARRAY CLEARS[0:LN];
ARRCLR(CLEARS,-1);
WHILE TRUE DO
BEGIN
ELFBKO(MEMLOC,LN+1,CLEARS);
FOR I ← 0 STEP 1 UNTIL LN DO ELFOUT(MEMLOC+I,I);
NOERROR ← TRUE;
FOR I ← LN STEP -1 UNTIL 0 DO IF (TEMP ← ELFIN(MEMLOC+I)) ≠ I THEN
BEGIN
PRINT("Error in using ELF. In location "&CVOS(MEMLOC+I)&
" I wrote "&CVS(I)&" but read back "&CVOS(TEMP)&CRLF);
NOERROR ← FALSE;
END;
PRINT(".")
END
END "ARRAY ALLOCATION BLOCK"
END "ELFTST";